// 用户管理
var User = Ext.data.Record.create([
	{name : 'tid',mapping : 'tid',type : 'int'}, 
	{name : 'username',mapping : 'username',type : 'string'}, 
	{name : 'displayname',mapping : 'displayname',type : 'string'}, 
	{name : 'role',mapping : 'role',type : 'int'}, 
	{name : 'updatetime',mapping : 'updatetime',type : 'string'}, 
	{name : 'updatetip',mapping : 'updatetip',type : 'String'}
	]);



var cm_user = new Ext.grid.ColumnModel([new Ext.grid.RowNumberer(), {
	header : '登陆名',
	width : 85,
	dataIndex : 'qq'
}, {
	header : '姓名',
	width : 85,
	dataIndex : 'name',
	sortable : false,
	menuDisabled : true
},{
	header : '角色',
	width : 60,
	dataIndex : 'role',
	sortable : false,
	renderer : renderRole,
	menuDisabled : true
},{
	header : '最后更新时间',
	width : 190,
	dataIndex : 'updatetime',
	renderer : renderDate,
	sortable:true
	
},{
	header : '最后更新IP',
	width : 160,
	dataIndex : 'updatetip',
	sortable : false
}]);

cm_user.defaultSortable = true;

var btn_add_user = new Ext.Button({
	text : '添加用户',
	iconCls : 'icon-add',
	handler : function() {
		window_add_user.show();
	}
});

var btn_edit_user = new Ext.Button({
	text : '修改用户',
	iconCls : 'icon-edit',
	handler : function() {
		var record = grid_user.getSelectionModel().getSelected();
		if (record) {
			window_edit_user.show();
		}else{
			Ext.Msg.alert('提示','请选择要修改的用户!');
		}
	}
});

var btn_del_user = new Ext.Button({
	text : '删除用户',
	iconCls : 'icon-del',
	handler : function() {
		var record = grid_user.getSelectionModel().getSelected();
		if (record) {
			Ext.Msg.confirm('确认删除', '你确定删除该条记录?', function(btn) {
				if (btn == 'yes') {
					Ext.Ajax.request({
						url : '/user/deleteUser.action',
						params : {tid : record.data.tid},
						success : function() {grid_user.getStore().remove(record);},
						failure : function() {
							Ext.Msg.show({
								title : '错误提示',
								msg : '删除时发生错误,您可能不是管理员!',
								buttons : Ext.Msg.OK,
								icon : Ext.Msg.ERROR
							});
						}
					});
				}
			});
		}
	}
});

var text_search_user = new Ext.form.TextField({
	name : 'textSearchUser',
	width : 200,
	emptyText : '根据用户名模糊查询!',
	listeners : {
		'specialkey' : function(field, e) {
			if (e.getKey() == Ext.EventObject.ENTER) {
				searchUser();
			}
		}
	}
});

var searchUser = function() {
	ds_user.baseParams.conditions = text_search_user.getValue(); 
	ds_user.load({params : {start : 0,limit : 20}});
}

var btn_search_user = new Ext.Button({
	text : '查询',
	iconCls : 'icon-search',
	handler : searchUser
});

var ds_user = new Ext.data.Store({
	url : app.url+'/admin/user/loginUserList.do',
	reader : new Ext.data.JsonReader({totalProperty : 'totalProperty',root : 'root'}, 
	[{name : 'id'}, 
	{name : 'qq',type : 'string'}, 
	{name : 'name',type : 'string'}, 
	{name : 'role',type : 'int'}, 
	{name : 'updatetime',type : 'string'}, 
	{name : 'updatetip',type : 'string'} 
	])
});

var grid_user = new Ext.grid.EditorGridPanel({
	title : '用户管理',
	iconCls : 'icon-grid',
	loadMask : {msg : '数据加载中...'},
    autoWidth : true,	   	   
	   	viewConfig:
	   	   {
	   	     forceFit:true,
	   	     scrollOffset:15
	   	    },	   	   
	autoScroll : true,
	region : 'center',
	cm : cm_user,
	ds : ds_user,
	sm : new Ext.grid.RowSelectionModel({singleSelect : true}),
	enableColumnMove : false,
	trackMouseOver : false,
	frame : true,
	clicksToEdit : 1,
	tbar : [btn_add_user, '-',btn_edit_user,'-', btn_del_user, '-',text_search_user, btn_search_user],
	bbar : new Ext.PagingToolbar({
		pageSize : 20,
		store : ds_user,
		displayInfo : true,
		displayMsg : '第 {0} - {1} 条  共 {2} 条',
		emptyMsg : "没有记录",
		items:[{   
                text: '导出到Excel',   
                tooltip: 'Excel',   
                handler: userExport // 
                        }]
	}),
	activate : function(){
	}
});

function userExport(){
	doExport(grid_user);
}

var window_add_user = new Ext.Window({
	title : '添加用户',
	width : 320,
	resizable : false,
	autoHeight : true,
	modal : true,
	closeAction : 'hide',
	listeners : {
		'hide' : function() {
			this.setTitle('添加用户');
			this.findById('user.username').ownerCt.form.reset();
		}
	},
	items : [new Ext.FormPanel({
		border : false,
		baseCls : 'x-plain',
		bodyStyle : 'padding:5px 5px 0',
		labelAlign : 'right',
		labelWidth : 70,
		defaults : {anchor : '93%',msgTarget : 'side'},
		defaultType : 'textfield',
		items : [{
			fieldLabel : '用户名',
			id : 'user.username',
			name : 'user.username',
			allowBlank : false,
			maxLength : 30
		}, {
			fieldLabel : '密码',
			id : 'password1',
			name : 'user.passwd',
			allowBlank : false,
			minLength : 6,
			maxLength : 30
		}, 
		   {fieldLabel : '姓名',name : 'user.displayname',maxLength : 20},
		   {xtype : 'combo',
			fieldLabel : '角色',
			mode : 'local',
			name : 'disprole',
			editable : false,
			store : new Ext.data.SimpleStore({
				data : [['管理员', 1], ['操作员',0]],
				fields : ['text', 'value']
			}),
			displayField : 'text',
			valueField : 'value',
			hiddenName:'user.role',
			mode : 'local',
			triggerAction : 'all',
			allowBlank:false,
			emptyText : '请选择角色'
		}
		],
		buttonAlign : 'right',
		minButtonWidth : 60,
		buttons : [{
			text : '添加',
			handler : function(btn) {
				var frm = this.ownerCt.ownerCt.form;
				if (frm.isValid()) {
					btn.disable();
					var unfield = frm.findField('user.username');
					frm.submit({
						waitTitle : '请稍候',
						url : '/user/saveUser.action',
						waitMsg : '正在提交表单数据,请稍候...',
						success : function(form, action) {
							ds_user.load({params : {start : 0,limit : 20}});
							window_add_user.hide();
							btn.enable();
						},
						failure : function() {
							Ext.Msg.show({
								title : '错误提示',
								msg : '"' + unfield.getValue() + '" ' + '名称可能已经存在!',
								buttons : Ext.Msg.OK,
								fn : function() {
									unfield.focus(true);
									btn.enable();
								},
								icon : Ext.Msg.ERROR
							});
						}
					});
				}
			}
		}, {text : '重置',handler : function() {this.ownerCt.ownerCt.form.reset();}
		}]
	})]
});

var window_edit_user = new Ext.Window({
	title : '修改用户资料',
	width : 320,
	resizable : false,
	autoHeight : true,
	modal : true,
	closeAction : 'hide',
	listeners : {
		'hide' : function() {
			this.setTitle('修改用户资料');
			this.findById('userd.username').ownerCt.form.reset();
		},
		'show' : function(){
			var record = grid_user.getSelectionModel().getSelected();
			this.findById('userd.username').setValue(record.data.username);
			this.findById('userd.displayname').setValue(record.data.displayname);
			this.findById('roleidd').setValue(record.data.role);
			this.findById('userd.tid').setValue(record.data.tid);
		}
	},
	items : [new Ext.FormPanel({
		border : false,
		baseCls : 'x-plain',
		bodyStyle : 'padding:5px 5px 0',
		labelAlign : 'right',
		labelWidth : 70,
		defaults : {anchor : '93%',msgTarget : 'side'},
		defaultType : 'textfield',
		items : [{
			fieldLabel : '用户名',
			id : 'userd.username',
			name : 'user.username',
			allowBlank : false,
			maxLength : 30
		}, {xtype : 'hidden',id:'userd.tid',name : 'user.tid'},  
		   {fieldLabel : '姓名',id:'userd.displayname',name : 'user.displayname',maxLength : 20},
		   {xtype : 'combo',
			fieldLabel : '角色',
			id:'roleidd',
			mode : 'local',
			name : 'disprole',
			editable : false,
			store : new Ext.data.SimpleStore({
				data : [['管理员', 1], ['操作员',0]],
				fields : ['text', 'value']
			}),
			displayField : 'text',
			valueField : 'value',
			hiddenName:'user.role',
			mode : 'local',
			triggerAction : 'all',
			allowBlank:false,
			emptyText : '请选择角色'
		}
		],
		buttonAlign : 'right',
		minButtonWidth : 60,
		buttons : [{
			text : '保存',
			handler : function(btn) {
				var frm = this.ownerCt.ownerCt.form;
				if (frm.isValid()) {
					btn.disable();
					var unfield = frm.findField('userd.username');
					frm.submit({
						waitTitle : '请稍候',
						url : '/user/updateUser.action',
						waitMsg : '正在提交表单数据,请稍候...',
						success : function(form, action) {
							ds_user.load({params : {start : 0,limit : 20}});
							window_edit_user.hide();
							btn.enable();
						},
						failure : function() {
							Ext.Msg.show({
								title : '错误提示',
								msg : '"' + unfield.getValue() + '" ' + '名称可能已经存在!',
								buttons : Ext.Msg.OK,
								fn : function() {
									unfield.focus(true);
									btn.enable();
								},
								icon : Ext.Msg.ERROR
							});
						}
					});
				}
			}
		}, {text : '取消',handler : function() {
			window_edit_user.hide();
			ds_user.load({params : {start : 0,limit : 20}});
		}
		}]
	})]
});

var p_user = {
	id : 'user-panel',
	border : false,
	layout : 'border',
	items : [grid_user]
};